/**
 * 用户认证和状态管理工具
 */

const TOKEN_KEY = 'bookmark_token'
const USER_KEY = 'bookmark_user'

/**
 * 存储token
 * @param {string} token - JWT token
 */
export function setToken(token) {
  localStorage.setItem(TOKEN_KEY, token)
}

/**
 * 获取token
 * @returns {string|null} token
 */
export function getToken() {
  return localStorage.getItem(TOKEN_KEY)
}

/**
 * 移除token
 */
export function removeToken() {
  localStorage.removeItem(TOKEN_KEY)
}

/**
 * 存储用户信息
 * @param {object} user - 用户信息
 */
export function setUser(user) {
  localStorage.setItem(USER_KEY, JSON.stringify(user))
}

/**
 * 获取用户信息
 * @returns {object|null} 用户信息
 */
export function getUser() {
  const userStr = localStorage.getItem(USER_KEY)
  return userStr ? JSON.parse(userStr) : null
}

/**
 * 移除用户信息
 */
export function removeUser() {
  localStorage.removeItem(USER_KEY)
}

/**
 * 检查是否已登录
 * @returns {boolean} 是否已登录
 */
export function isLoggedIn() {
  return !!getToken()
}

/**
 * 登出
 */
export function logout() {
  removeToken()
  removeUser()
}

/**
 * 保存登录状态
 * @param {string} token - JWT token
 * @param {object} user - 用户信息
 */
export function saveLoginState(token, user) {
  setToken(token)
  setUser(user)
}
